let path = require("path");
function resolve(dir) {
  return path.join(__dirname, dir);
}
module.exports = {
  lintOnSave: false, //不需要使用eslint时，把lintOnSave设为false
  publicPath: "./",
  outputDir: "./webapp",
  chainWebpack: config => {
    config.module
      .rule("vue")
      .use("vue-loader")
      .loader("vue-loader")
      .tap(options => {
        options.transformAssetUrls = { Test: "img-src" };
        return options;
      });

    //同时依赖file-loader，svg-sprite-loader使用file-loader编译svg的时候不编译icons里面的图标，原有的svg图像处理loader添加exclude
    config.module
      .rule("svg")
      .exclude.add(resolve("src/icons/svg"))
      .end();

    config.module
      .rule("icons")
      .test(/\.svg$/)
      .include.add(resolve("src/icons/svg"))
      .end()
      .use("svg-sprite-loader")
      .loader("svg-sprite-loader")
      .options({
        symbolId: "icon-[name]"
      });

    config.resolve.alias
      .set("@views", resolve("src/views"))
      .set("@pages", resolve("src/pages"))
      .set("@utils", resolve("src/utils"))
      .set("stylus", resolve("src/stylus"))
      .set("@components", resolve("src/components"))
      .set("@assets", resolve("src/assets"))
      .set("@filters", resolve("src/filters"))
      .set("@directive", resolve("src/directive"))
      .set("@scripts", resolve("scripts/api"))
      .set("@store", resolve("src/store"))
      .set("@mixins", resolve("src/mixins"))
      .set("@data", resolve("src/data"))
      .set("@api", resolve("src/api")); // 生成的接口
    // 配置别名alias,同时tsconfig.json文件进行检测类型
  },
  productionSourceMap: false, //在生成环境是不需要.map文件的
  //解决架子自适应宽度
  configureWebpack: confing => {
    [
      // new TerserPlugin({
      //   cache: true,
      //   parallel: true,
      //   sourceMap: true, //将错误消息位置映射到模块（储存着位置信息）  Must be set to true if using source-maps in production
      //   terserOptions: {
      //     compress: {
      //       drop_console: true,
      //       drop_debugger: true
      //     }
      //   }
      // })
    ];
  },
  css: {
    loaderOptions: {
      // sass: {
      //   // 向全局sass样式传入共享的全局变量
      //   data: `@import "~assets/scss/variables.scss";$src: "${process.env.VUE_APP_SRC}";`
      // }
      // stylus: {
      //   preferPathResolver: "webpack",
      //   paths: [path.join(__dirname, "src/stylus")],
      //   import: ["global.styl"]
      // }
    }
  },
  pages: {
    index: {
      // page 的入口
      entry: "src/main",
      // 模板来源
      template: "public/index.html",
      // 在 dist/index.html 的输出
      filename: "index.html",
      // 当使用 title 选项时，
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: "ts-manager"
    }
  },
  devServer: {
    proxy: {
      "/ts-admin": {
        target: " https://www.easy-mock.com/mock/5d3e4c024ce9620c9900e5fe/ts-admin",
        changeOrigin: true
      }
    }
  }
};
